package cn.iocoder.yudao.module.contract.controller.admin.invoice.vo;

import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@Schema(description = "管理后台 - 发票分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class InvoicePageReqVO extends PageParam {

    @Schema(description = "公司(多选)")
    private String[] xfmcList;

    @Schema(description = "购买方")
    private String gfmc;

    @Schema(description = "购买方筛选类型")
    private String gfmcType;

    @Schema(description = "运输方式(多选)")
    private String[] vsbedList;

    @Schema(description = "订单类型（多选）")
    private String[] auartList;

    @Schema(description = "凭证日期")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] audat;

    @Schema(description = "发票号码")
    private String fphm;

    @Schema(description = "发票号码筛选类型")
    private String fphmType;

    @Schema(description = "开票月")
    private String invoiceMonth;

    @Schema(description = "开票日期")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] kprq;

    @Schema(description = "订单号")
    private String ddh;

    @Schema(description = "订单号筛选类型")
    private String ddhType;

    @Schema(description = "雇员名称")
    private String qyusername;

    @Schema(description = "雇员名称筛选类型")
    private String qyusernameType;

    @Schema(description = "区域名称")
    private String salesmethodname;

    @Schema(description = "区域名称筛选类型")
    private String salesmethodnameType;

    @Schema(description = "发票状态（多选）")
    private String[] fpztList;

    @Schema(description = "合同生成日期")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] contractGeneratedTime;

    @Schema(description = "合同号")
    private String contractNo;

    @Schema(description = "合同号筛选类型")
    private String contractNoType;

    @Schema(description = "状态（多选）")
    private String[] statusList;

    @Schema(description = "列表类型 0发票总表 2发票管理")
    private String listType;

    @Schema(description = "管控类型")
    private String zzhtgklx;

    @Schema(description = "排序字段")
    private String prop;
    @Schema(description = "排序类型")
    private String order;
}